#pragma once

class IWork;
namespace boost
{
	namespace asio
	{
		class io_service;
	}
}

class IIOService
{
public:
	virtual void run() = 0;
	virtual void stop() = 0;
	virtual IWork* createWorkForThis() = 0;
	virtual boost::asio::io_service& getBoostIoService() = 0;

	virtual ~IIOService(){};
};